<?php
declare (strict_types = 1);

namespace app\demo\command;

use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output;

class Test extends Command
{
    protected function configure()
    {
        // 指令配置
        $this->setName('Test')
            ->setDescription('the Test command');        
    }

    protected function execute(Input $input, Output $output)
    {
    	// 指令输出
//    	$output->writeln('Test');

//        返回键名
//        $arr = array_keys($array);
//        取出最后一个,返回的单个元素,原数组少一个
//        $str = array_pop($array);

//       取出第一个
//        $str  = array_shift($array);
//        压入末尾元素
//        array_push($arr, "apple", "raspberry");

//        $k = array_rand($arr, 2);
//        随机取出2个元素,返回下标
//        反序数组
//        $result = array_reverse($arr);
        $newArray =[];

//        $left = 0;
//        $right = count($arr) -1;
//        $temp = [];
//        while ($left <= $right){
//            $temp[$left] = $arr[$right];
//            $temp[$right]  = $arr[$left];
//            $left++;
//            $right--;
//        }
//        ksort($temp);
//        return $temp;
//
//

//        $arr1 = array_slice($arr,2, 1);
//        从某个位置开始,取出元素个数,负数从末尾开始,不填写到末尾

        $arr = [
            'status' => ['type' => ['varchar', 'enum'], 'name' => 'status'],
//            'icon'   => 'icon1',
            'flag'   => 'flag2',
            'url'    => 'url3',
            'image'  => 'image4',
            'images' => 'images5',
            'avatar' => 'image6',
            'switch' => 'toggle',
//            'time'   => ['type' => ['int', 'timestamp'], 'name' => 'datetime'],
        ];
        $a = [1,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3];

//        array_sum($a)数值之和
//        dump(array_sum($a));
//        array_unique($input) 去掉重复
//        array_unshift($queue, "apple", "raspberry");开头插入
//        $arr = array_values($array) 返回值组成的数组
//        count($arr)计算数组个数
//        in_array("Irix", $arr))  元素是否在数组中
//        range(0, 10, 10) 0-100 步长10的数组
//        $k = range('a','z');
//        shuffle($arr); 打乱数组

//        $num1 = 123;
//        $num2 = 456;
//        $txt = vsprintf("%x%X",array($num1,$num2));
//        echo $txt;
        //初始化curl

        //实例化reids
        $redis = new \Redis();
        $redis->connect('127.0.0.1');
//        halt($redis->del('hooks','__menu__'));
        if($redis->isConnected()){
//            halt($redis);

        }

    }


    /**
     * @param bool $refresh
     * @param bool $iscode
     * @param string $prefix
     * @param string $nextpre
     * @return string
     */
   public function build_sn($refresh = false, $iscode = true, $prefix = '', $nextpre = '')
    {
        return $prefix . date('Ymd') . substr(implode(null, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 14) . $nextpre;
    }
}
